/**
 * 
 */
package estadosDelEnvio;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

import estadosDelEnvio.Cancelado;
import exceptions.StatesException;

/**
 * @author lucas
 *
 */
public class CanceladoTest extends EstadoDeEnviosTest {

	/* (non-Javadoc)
	 * @see estadosDeEnvio.EstadoDeEnviosTest#setUp()
	 */
	@Before
	public void setUp() throws Exception {
		super.setUp();
		this.setSut(new Cancelado());
	}

	/**
	 * este test demuestra que el estado
	 * efectivamente esta cancelado.
	 */
	@Override
	@Test
	public void estoyCanceladoTest(){
		assertEquals(true,this.getSut().estoyCancelado());
	}
	
	/**
	 * Este test demuestra que en esta etapa
	 * no se puede cancelar un envio a pagar.
	 * @throws StatesException
	 */
	@Override
	@Test(expected = StatesException.class)
	public void cancelarEnvioAPagarTest() throws StatesException{
		this.getSut().cancelarEnvio(this.getEnvioAPagar());
	}
	
	/**
	 * Este test demuestra que en esta etapa
	 * no se puede cancelar un envio pagado.
	 * @throws StatesException
	 */
	@Override
	@Test(expected = StatesException.class)
	public void cancelarEnvioAPagadoTest() throws StatesException{
		this.getSut().cancelarEnvio(this.getEnvioPagado());
	}

}
